package com.forum.user.service;

import com.forum.common.utils.R;
import com.forum.user.entity.ForumUser;
import com.baomidou.mybatisplus.extension.service.IService;
import com.forum.user.vo.UpdateUserPasswordVo;
import com.forum.user.vo.UserVo;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author bncgnc
 * @since 2022-01-04
 */
public interface ForumUserService extends IService<ForumUser> {
    /**
     * 根据用户名称查询用户
     * @param forumUser
     * @return
     */
    R findUserByName(ForumUser forumUser);

    /**
     * 用户注册
     * @param forumUser
     * @return
     */
    R register(ForumUser forumUser);

    /**
     * 用户登录，jwt
     * @param
     * @return
     */
    R login(UserVo userVo);

    /**
     * 登出
     * @param token
     * @return
     */
    R logout(String token);

    /**校验token
     *
     * @param token
     * @return
     */
    ForumUser checkToken(String token);

    /**
     * 用户管理员用户查看所有普通用户
     * @param forumUser
     * @return
     */
    R listAllCommonUser(ForumUser forumUser);

    /**
     * 修改用户基本信息
     * @param forumUser
     * @return
     */
    R updateUserBase(ForumUser forumUser);

    /**
     * 修改密码
     * @param updateUserPasswordVo
     * @return
     */
    R updateUserPassword(UpdateUserPasswordVo updateUserPasswordVo);

    R deleteUser(Long id);
}
